Skip to main content
Minh Nong
💬
0 discussions

[API] mobile-service

API Endpoints

Response

  • 200: Success
  • 403: Forbidden
  • 400: Bad Request

Auth

  • Auth Type : Bearer Token

auth_keycloak.js

Forget Password

  • Route: /fogetPasswordKeycloak
  • Method: POST
  • Body: realm, email
  • Related API:
    • access: POST /user/resetPassword
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 500 { success: false, error: 'Invalid access' }

calllog.js

Create Calllog

  • Route: /ua/calllog
  • Method: POST
  • Body: user, phone, start, end, duration, idContact
  • Description: Creates a new call log entry with the specified details.
  • Related API:
    • access: POST /callcenter/${idCallcenter}/calllog
    • access: GET /${versionApi}/callcenter/${user.idCallcenter}/contacts/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

integration.js

Create Integration

  • Route: /ua/integration/:template_name/endpoint/:endpoint_name
  • Method: POST
  • Body: user, phone, start, end, duration, idContact
  • Related API:
    • integration: POST /api/integrator/${template_name}/endpoint/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

nexmo.js

Get Inbound SMS from Nexmo

  • Route: /inbound-sms
  • Method: GET
  • Query Parameters: text, msisdn, to, api-key, idCallcenter
  • Related API:
    • Access: GET /nexmos
    • Access: GET /callcenter/${idCallcenter}/phone
    • Access: POST /callcenter/${idCallcenter}/contact
    • Access: GET /callcenter/${idCallcenter}/contact/${idContact}/activities
    • Access: GET /user/search
    • Access: POST /callcenter/${idCallcenter}/contact/${idContact}/activity
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

activity.js

Get Activities for a Contact

  • Route: /contact/:contact_id/activities
  • Method: GET
  • Params: contact_id
  • Query Parameters: page, limit, type
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}/activities
    • Access: GET /callcenter/${user.idCallcenter}/agents/all
  • Return Format:
    • Success: 200 res.json({ success: true, result: list, hasMore })
    • Failure: 400 { success: true, result: [], hasMore: false }

Add Activity for a Contact

  • Route: /contact/:contact_id/activity
  • Method: POST
  • Params: contact_id
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${user.idCallcenter}/contact/${contact_id}/activity
    • Access: GET /callcenter/${user.idCallcenter}/agent/${body.body.remindedAgent}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: true, result: null }

Get All Activities

  • Route: /activities
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/activities
    • Access: GET /callcenter/${user.idCallcenter}/agents/all
  • Return Format:
    • Success: 200 { success: true, result: list, hasMore }
    • Failure: 400 { success: true, result: null }

Get Activity Details

  • Route: /contact/:contact_id/activity/:activity_id
  • Method: GET
  • Params: contact_id, activity_id
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: true, result: null }

Update Activity

  • Route: /contact/:contact_id/activity/:activity_id
  • Method: PUT
  • Params: contact_id, activity_id
  • Related API:
    • Access: PUT /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
    • Access: GET /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: true, result: null }

Delete Activity

  • Route: /contact/:contact_id/activity/:activity_id
  • Method: DELETE
  • Params: contact_id, activity_id
  • Related API:
    • Access: DELETE /callcenter/${user.idCallcenter}/contact/${contact_id}/activity/${activity_id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: true }

Add Tags to Activity

  • Route: /activity/:id/tags
  • Method: POST
  • Params: id
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${user.idCallcenter}/activity/${id}/tags
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: true, result: null }

Remove Tags from Activity

  • Route: /activity/:id/tags
  • Method: DELETE
  • Params: id
  • Body: req.body
  • Related API:
    • Access: DELETE /callcenter/${user.idCallcenter}/activity/${id}/tags
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: true, result: null }

agent.js

All Agents

  • Route: /agents/all
  • Method: GET
  • Related API:
    • Access: GET ${versionApi}/callcenter/${idCallcenter}/agents/all
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Update Agent Status

  • Route: /agent/status
  • Method: PUT
  • Body: req.body
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 400 { success: false, error: 'Invalid input' }

calllog.js

Create Calllog

  • Route: /calllog
  • Method: POST
  • Body: user, phone, start, end, duration, idContact
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/calllog
    • Access: POST /${versionApi}/callcenter/${user.idCallcenter}/contacts/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get All Calllogs

  • Route: /calllogs
  • Method: GET
  • Query: page, limit, filter
  • Related API:
    • Access: POST /callcenter/${user.idCallcenter}/activities
    • Access: GET /callcenter/${idCallcenter}/calllogs
  • Return Format:
    • Success: 200 { success: true, result: result, hasMore: resp.data.hasMore }
    • Failure: 400 { success: false, error: 'Invalid input' }

Get Calllog by ID

  • Route: /calllog/:id
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/calllog/${req.params.id}
  • Return Format:
    • Success: 200 res.json(response)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get Calllogs by Phone Number

  • Route: /calllogs/phone/:phone
  • Method: GET
  • Params: phone
  • Query: page, limit, filter
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/phone/${phone}/activities
  • Return Format:
    • Success: 200 { success: true, result: result, hasMore: resp.data.hasMore }
    • Failure: 400 { success: false, error: 'Invalid input' }

contact_field.js

Get All Contact Fields

  • Route: /contactfields/all
  • Method: GET
  • Body: name, type, idCallcenter
  • Related API:
    • Access: GET /callcenter/${user.idCallcenter}/contactfields/all
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

contact_group.js

Get All Contact Groups

  • Route: /contactgroups
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroups
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Search Contact Groups

  • Route: /contactgroups/search
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroups/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Get Contacts of a Contact Group

  • Route: /contactgroup/:id/contacts
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroup/${id}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Add Contacts to a Contact Group

  • Route: /contactgroup/:id/contacts
  • Method: POST
  • Params: id
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/contactgroup/${id}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Remove Contacts from a Contact Group

  • Route: /contactgroup/:id/contacts
  • Method: DELETE
  • Params: id
  • Body: req.body
  • Related API:
    • Access: DELETE /callcenter/${idCallcenter}/contactgroup/${id}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Search Contacts in a Contact Group

  • Route: /contactgroup/:id/contacts/search
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contactgroup/${id}/contacts/search
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

contact.js

Contacts

  • Route: /contacts
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contacts
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Search Contacts

  • Route: /contacts/search
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contacts/search
  • Return Format:
    • Success: 200 res.json(resp.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Create Contact

  • Route: /contact
  • Method: POST
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/contact
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Get Contact

  • Route: /contact/:id
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/contact/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Update Contact

  • Route: /contact/:id
  • Method: PUT
  • Params: id
  • Body: req.body
  • Related API:
    • Access: PUT /callcenter/${idCallcenter}/contact/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

Delete Contact

  • Route: /contact/:id
  • Method: DELETE
  • Params: id
  • Related API:
    • Access: DELETE /callcenter/${idCallcenter}/contact/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

integration.js

Create HubSpot Engagement

  • Route: /hubspot/engagement
  • Method: POST
  • Body: req.body
  • Related API:
    • Integration: POST /api/hubspot/engagement
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get HubSpot Engagement by ID

  • Route: /hubspot/engagement/:id
  • Method: GET
  • Params: id
  • Related API:
    • Integration: GET /api/hubspot/engagement/${req.params.id}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Update HubSpot Engagement by ID

  • Route: /hubspot/engagement/:id
  • Method: PUT
  • Params: id
  • Related API:
    • Integration: GET /api/hubspot/engagement/${id}
    • Integration: PUT /api/hubspot/engagement/${id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Search HubSpot Contacts

  • Route: /hubspot/contacts/search
  • Method: GET
  • Related API:
    • Integration: GET /api/hubspot/contacts/search
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create HubSpot Contact

  • Route: /hubspot/contact
  • Method: POST
  • Body: req.body
  • Related API:
    • Integration: POST /api/hubspot/contact
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get HubSpot Tickets

  • Route: /hubspot/tickets
  • Method: GET
  • Related API:
    • Integration: GET /api/hubspot/tickets/search?id=${req.query.id}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create HubSpot Ticket

  • Route: /hubspot/ticket
  • Method: POST
  • Related API:
    • Integration: POST /api/hubspot/ticket
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create HubSpot Association

  • Route: /hubspot/association
  • Method: POST
  • Body: req.body
  • Related API:
    • Integration: POST /api/hubspot/association
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Recent HubSpot Deals

  • Route: /hubspot/deals/recent
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/hubspot/deals/recent
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Search Integrator

  • Route: /integrator/search
  • Method: GET
  • Query: host, phone
  • Related API:
    • Integration: POST/api/integrator/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create Integrator Endpoint

  • Route: /integrator/:endpoint
  • Method: POST
  • Query: host
  • Related API:
    • Integration: POST /api/integrator/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create Integration by Template and Endpoint

  • Route: /integration/:template_name/endpoint/:endpoint_name
  • Method: POST
  • Body: req.body
  • Params: template_name, endpoint_name
  • Related API:
    • Integration: POST /api/integrator/${template_name}/endpoint/${endpoint_name}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Vietguy SMS

  • Route: /vietguy/sms
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/vietguy/sms
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Search Nhanh Customers

  • Route: /nhanh/customer/search
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/nhanh/customer/search
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Customers

  • Route: /sapo/customers
  • Method: GET
  • Query: req.query
  • Body: req.body
  • Related API:
    • Integration: GET /api/sapo/customers
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Create Sapo Customer Note

  • Route: /sapo/customers/note
  • Method: POST
  • Query: req.query
  • Body: req.body
  • Related API:
    • Integration: POST /api/sapo/customers/note
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Accounts

  • Route: /sapo/accounts
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/sapo/accounts
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Account Details Integration

  • Route: /sapo/accounts/:id
  • Method: GET
  • Params: id
  • Related API:
    • Integration: GET /api/sapo/accounts/${req.params.id}
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Sapo Orders Integration

  • Route: /sapo/orders
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/sapo/orders
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Get Mio Investor by Phone Integration

  • Route: /mio/get-investor-by-phone
  • Method: GET
  • Query: req.query
  • Related API:
    • Integration: GET /api/mio/get-investor-by-phone
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

Post Brandname OTP Integration

  • Route: /fpt/push-brandname-otp
  • Method: POST
  • Body: brandname
  • Related API:
    • Integration: POST /api/fpt/push-brandname-otp
  • Return Format:
    • Success: 200 res.status(response.status).json(response.data)
    • Failure: 500 { success: false, error: { message: error.message } }

session-iam.js

Session

  • Route: /session
  • Method: GET
  • Related API:
  • Return Format:
    • Success: 200 { success: true, result: {...user,sip: sip,status: status}}
    • Failure: 400 { success: false, error: 'Invalid input' }

Signout

  • Route: /signout
  • Method: POST
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 400 { success: false, error: 'Invalid input' }

session.js

Signin

  • Route: /signin
  • Method: POST
  • Body: email, password
  • Related API:
    • access: POST /signin
  • Return Format:
    • Success: 200 res.json(response)
    • Failure: 400 { success: false, error: { message: error.message } }

Session

  • Route: /session
  • Method: GET
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true, result: user })
    • Failure: 400 { success: false, error: 'Invalid input' }

Signout

  • Route: /signout
  • Method: POST
  • Related API:
  • Return Format:
    • Success: 200 res.json({ success: true })
    • Failure: 400 { success: false, error: 'Invalid input' }

Forget Password

  • Route: /forgetpassword
  • Method: POST
  • Body: email
  • Related API:
    • access: POST /confirm
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: { message: error.message } }

template.js

Create Template

  • Route: /template
  • Method: POST
  • Body: req.body
  • Related API:
    • Access: POST /callcenter/${idCallcenter}/template
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get Template by ID

  • Route: /template/:id
  • Method: GET
  • Params: id
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/template/${req.params.id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Delete Template by ID

  • Route: /template/:id
  • Method: DELETE
  • Params: id
  • Related API:
    • Access: DELETE /callcenter/${idCallcenter}/template/${req.params.id}
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }

Get All Templates

  • Route: /templates/all
  • Method: GET
  • Related API:
    • Access: GET /callcenter/${idCallcenter}/templates/all
  • Return Format:
    • Success: 200 res.json(response.data)
    • Failure: 400 { success: false, error: 'Invalid input' }